﻿<%@ Application Language="C#" %>

<script RunAt="server">

  void Application_Start(object sender, EventArgs e)
  {
    // Code that runs on application startup
    CreateSchema.Go();
  }

  void Application_End(object sender, EventArgs e)
  {
    //  Code that runs on application shutdown

  }

  void Application_Error(object sender, EventArgs e)
  {
    // Code that runs when an unhandled error occurs

  }

  void Session_Start(object sender, EventArgs e)
  {
    // Code that runs when a new session is started

  }

  void Session_End(object sender, EventArgs e)
  {
    // Code that runs when a session ends. 
    // Note: The Session_End event is raised only when the sessionstate mode
    // is set to InProc in the Web.config file. If session mode is set to StateServer 
    // or SQLServer, the event is not raised.

  }

  /// <summary>
  /// Things that need to happen each request
  /// </summary>
  protected void Application_BeginRequest(Object sender, EventArgs e)
  {
    // Force them into HTTPS if they're not local
    // http://stackoverflow.com/questions/47089/best-way-in-asp-net-to-force-https-for-an-entire-site
    if (HttpContext.Current.Request.IsSecureConnection.Equals(false) &&
      !HttpContext.Current.Request.IsLocal)
    {
      
      Response.Redirect("https://" + Request.ServerVariables["HTTP_HOST"] + HttpContext.Current.Request.RawUrl);
    }
  }
  
</script>

